/*
Esta es la interface que representa los resource loader. Cada recurso queda en memoria hasta que es liberado.
Debe tener un sistema de pasar recursos (aunque sean serializados), para que un recurso pueda ser transformado o especializado.
El open debe tener un tipo de url.
*/
#pragma once
#ifndef _Z3D_RESOURCE_LOADER_H_
#define _Z3D_RESOURCE_LOADER_H_

#include <string>
#include "resourceLocator.h"
namespace z3d{
	namespace utils{
		class AbstractResourceLoader{
			public:
				virtual void open(const ResourceLocator& locator) = 0;
				virtual const unsigned char* getSerializedContent() = 0;
				virtual std::string getSerializedString() = 0;
				virtual AbstractResourceLoader& getResource() = 0;
				virtual void release() = 0;
			protected:
				
		};
	}
}

#endif //_Z3D_RESOURCE_LOADER_H_
